package com.spring.annotation;

import com.spring.beans.LifeCycle;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

/**
 * Bean 生命周期：
 *
 * 1、构造（对象创建）：
 * 单例(默认)：容器启动时
 * 多例：获取Bean时候
 *
 *
 * 2、初始化：
 * 单例：容器启动时，对象创建后，并赋值，初始化
 * 多例：获取Bean时候
 *
 * 3、销毁
 * 单例：容器关闭时
 * 多例：不是容器管理
 *
 */
@Configuration
public class BeanLifeCycleConfig {

    //@Bean
    //@Bean(initMethod = "init")
    @Bean(initMethod = "init",destroyMethod = "destroy")
    @Scope(scopeName = "prototype")
    public LifeCycle lifeCycle(){
        return new LifeCycle();
    }
}
